<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Proceso extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->form_data = new stdClass();
        if (!empty($this->session->userdata['nombre'])) {
            $this->form_data->nom = $this->session->userdata['nombre'];
            $this->form_data->ape = $this->session->userdata['apellido'];
            $this->form_data->suc = $this->session->userdata['sucursal'];
            $this->load->helper('navigation');
        } else {
            redirect("acceso");
        }
    }

    public function index() {
        //$this->load->view('intranet/inicio_view');
    }

    public function detProducto() {
        $this->load->model("logistica/producto_model");
        $this->load->model("logistica/servicios_model");
        if (!empty($_POST["linea"])) {
            $familia = $_POST["familia"];
            $linea = $_POST["linea"];
            if ($familia == 0) {
                $data['familias'] = array(0 => "Seleccione Familia");
            } else {
                $data['familias'] = $this->servicios_model->combo2('familia', $linea);
            }
            $this->form_data->linea = $linea;
            $this->form_data->familia = $familia;
        } else {
            $familia = 0;
            $linea = 0;
            $data['familias'] = array("Seleccione Familia");
            $this->form_data->linea = "";
            $this->form_data->familia = "";
        }
        $sucursal = $this->session->userdata['idSuc'];
        $params = array($sucursal, $linea, $familia, 0);
        $data['productos'] = $this->producto_model->list_productos($params, 0);
        $data['lineas'] = $this->servicios_model->combo2('linea', 0);
        $this->pagina('detalleProducto_view', $data);
    }

    public function stockProducto($tipo) {
        $this->load->model("logistica/producto_model");
        if ($_POST["suc"] == 0) {
            $suc = $this->session->userdata['idSuc'];
        } else {
            $suc = $_POST["suc"];
        }
        $params = array($tipo, $_POST["prod"], $suc);
        $data['registros'] = $this->producto_model->list_StockProd($params);
        echo json_encode($data);
    }

    public function stockProductoxColor() {
        $this->load->model("logistica/producto_model");
        $suc = $this->session->userdata['idSuc'];
        $params = array($_POST["prod"], $suc, $_POST["color"]);
        $data['registros'] = $this->producto_model->list_StockProdxColor($params);
        echo json_encode($data);
    }

    public function listPreciosProdxSuc($prod) {
        $this->load->model("logistica/producto_model");
        $sucursal = $this->session->userdata['idSuc'];
        $params = array($prod, $sucursal);
        $data['registros'] = $this->producto_model->list_preciosProdxSuc($params);
        echo json_encode($data);
    }

    public function combo($tipo, $param1) {
        $this->load->model("logistica/servicios_model");
        $data['registros'] = $this->servicios_model->combo($tipo, $param1);
        echo json_encode($data);
    }

    public function productos() {
        $this->load->model("logistica/producto_model");
        $this->load->model("logistica/servicios_model");
        if (!empty($_POST["linea"])) {
            $familia = $_POST["familia"];
            $linea = $_POST["linea"];
            if ($familia == 0) {
                $data['familias'] = array(0 => "Seleccione Familia");
            } else {
                $data['familias'] = $this->servicios_model->combo2('familia', $linea);
            }
            $this->form_data->linea = $linea;
            $this->form_data->familia = $familia;
        } else {
            $familia = 0;
            $linea = 0;
            $data['familias'] = array(0 => "Seleccione Familia");
            $this->form_data->linea = "";
            $this->form_data->familia = "";
        }
        $params = array(0, $linea, $familia, 0);
        $data['lineas'] = $this->servicios_model->combo2('linea', 0);
        $data['productos'] = $this->producto_model->list_productos($params, 0);
        $this->pagina('producto_view', $data);
    }

    public function setValProducto() {
        $this->form_data->id = 0;
        $this->form_data->descripcion = "";
        $this->form_data->marca = "";
        $this->form_data->modelo = "";
        $this->form_data->linea = "";
        $this->form_data->colors = "";
        $this->form_data->familia = "";
    }

    public function formProducto($prod) {
        $this->load->model("logistica/producto_model");
        $this->load->model("logistica/servicios_model");
        $sucursal = $this->session->userdata['idSuc'];
        $params = array($prod, $sucursal);
        $data['registros'] = $this->producto_model->list_preciosProdxSuc($params);
        $data['marcas'] = $this->servicios_model->combo2('marca', 0);
        $data['lineas'] = $this->servicios_model->combo2('linea', 0);
        $data['colores'] = $this->servicios_model->combo2('color', 0);

        if ($prod != 0) {
            $params2 = array(0, 0, 0, $prod);
            $productos = $this->producto_model->list_productos($params2, $prod)->row();
            $data['familias'] = $this->servicios_model->combo2('familia', $productos->id);
            $colors = $this->producto_model->list_colorxprod($prod);
            if (!empty($colors)) :
                foreach ($colors as $fila):
                    $idcolor[] = $fila->color_id;
                endforeach;
            endif;
            $this->form_data->id = $productos->id_prod;
            $this->form_data->descripcion = $productos->desc_prod;
            $this->form_data->marca = $productos->marca_id;
            $this->form_data->modelo = $productos->modelo;
            $this->form_data->linea = $productos->id;
            $this->form_data->colors = $idcolor;
            $this->form_data->familia = $productos->familia_id;
        } else {
            $data['familias'] = array("Seleccione Familia");
            $this->setValProducto();
        }
        $this->pagina('formProducto_view', $data);
    }

    public function guardarProductos() {
        $this->load->model("logistica/producto_model");
        $precios = json_decode($_POST['detPrecio']);
        $colors = json_decode($_POST['colors']);
        $suc = $this->session->userdata['idSuc'];
        $msj = $this->producto_model->IU_Producto($_POST["prod"], $_POST["modelo"], $_POST["marca"], $_POST["familia"], $suc, $_POST["codProd"], $precios, $colors);
        echo json_encode($msj);
    }

    public function listarNotaPedido() {
        $this->load->model("logistica/pedido_model");
        $suc = $this->session->userdata['idSuc'];
        $data["notaPedido"] = $this->pedido_model->listadoNotaPedido($suc);
        $this->pagina("notaPedido_view", $data);
    }

    public function listarDetalles($tipo, $cod) {
        $this->load->model("logistica/servicios_model");
        $params = array($tipo, $cod);
        $data["registros"] = $this->servicios_model->detalles($params);

        echo json_encode($data);
    }

    public function frmNotaPedido() {
        $this->load->model("logistica/servicios_model");
        $this->load->model("logistica/tablaMaestra_model");
        $data['sucursales'] = $this->servicios_model->combo2('sucursal', 0);
        $params = array('cod_ped', 'pedido');
        $max = $this->tablaMaestra_model->ultimoCodigo($params)->row();
        $data['codigo'] = str_pad($max->ultCod + 1, 7, 0, STR_PAD_LEFT);
        $this->pagina('frmnotaPedido_view', $data);
    }

    public function filtradodeProd() {
        $this->load->model("logistica/producto_model");
        $params = array($_GET["q"], $_GET["cod"]);
        $data['registros'] = $this->producto_model->filtrarProductos($params);
        echo json_encode($data);
    }

    public function guardarPedido() {
        date_default_timezone_set('UTC');
        $this->load->model("logistica/pedido_model");
        $detPedi = json_decode($_POST['detPedido']);
        $suc = $this->session->userdata['idSuc'];
        $fecha = $_POST["fecPedi"];
        $mi_fecha = date("Y-m-d", strtotime($fecha));
        $msj = $this->pedido_model->IU_Pedido($_POST['oper'], $suc, $_POST["suc"], $mi_fecha, $_POST["codPedi"], $detPedi);
        echo json_encode($msj);
    }

    public function frmCompras() {
        $this->load->model("logistica/servicios_model");
        $data['tipcomp'] = $this->servicios_model->combo2('tipocomprob', 0);
        $this->pagina('frmcompras_view', $data);
    }

    public function listarCompras() {
        $this->load->model("logistica/compras_model");
        $data["compras"] = $this->compras_model->listadoCompras();
        $this->pagina("compras_view", $data);
    }

    public function guardarCompra() {
        date_default_timezone_set('UTC');
        $this->load->model("logistica/compras_model");
        $detCompra = json_decode($_POST["detCompra"]);
        $usuario = $suc = $this->session->userdata['codigo'];
        $fecha = $_POST["fecha"];
        $mi_fecha = date("Y-m-d", strtotime($fecha));
        $params = array($_POST["oper"], $_POST["serie"], $_POST["numero"]
            , $mi_fecha, $_POST["subTotal"], $_POST["igv"]
            , $_POST["total"], $_POST["codProv"], $usuario, $_POST["tipoComp"]);
        $msj = $this->compras_model->IU_ComprobanteCompra($params, $_POST["idCompras"], $detCompra);

        echo json_encode($msj);
    }

    public function buscarProveedorxRUC() {
        $this->load->model("logistica/proveedor_model");
        $proveedor = $this->proveedor_model->buscarxRUC($_POST["ruc"]);
        echo json_encode($proveedor);
    }

    public function frmStock($prod) {
        $this->load->model("logistica/producto_model");
        $data["colors"] = $this->producto_model->list_colorxprod($prod);
        $data["prod"] = $prod;
        $this->pagina("frmStock_view", $data);
    }

    public function actualizarStock() {
        $stk = json_decode($_POST["stock"]);
        $this->load->model("logistica/producto_model");
        $this->producto_model->U_StockProd($stk, $_POST["prod"], $_POST["color"]);
    }

    private function pagina($vista, $data) {
        $this->load->model("panel_model");
        $menu["logistica"] = "active open";
        $user = $this->session->userdata['codigo'];
        $params = array($user,1);
        $menu["menu"] = $this->panel_model->menu($params);
        $this->load->view('estructura/head');
        $this->load->view('estructura/madmin', $menu);
        $this->load->view('intranet/logistica/' . $vista, $data);
        $this->load->view('estructura/footer');
    }

}
